package com.first.orange.service.impl;

import com.first.orange.beans.Cart;
import com.first.orange.beans.Orders;
import com.first.orange.beans.ShopAddress;
import com.first.orange.mapper.PayMapper;
import com.first.orange.service.PayService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created on 2021/7/6.
 * <p>
 * Author: wuqilong
 * <p>
 * Description: 支付页面功能接口实现类
 */
@Service
public class PayServiceImpl implements PayService {

    @Autowired
    PayMapper payMapper;

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : boolean
     * @description : 增加用户收货地址功能接口功能实现
     */
    @Override
    public boolean addShopAddress(ShopAddress shopAddress) {
        return payMapper.insertShopAddress(shopAddress) > 0;
    }

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : java.util.List<com.first.orange.beans.ShopAddress>
     * @description : 根据用户id查询用户所有的收货地址接口功能实现
     */
    @Override
    public List<ShopAddress> queryAllShopAddress(Integer userId) {
        return payMapper.selectAllShopAddress(userId);
    }

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : boolean
     * @description : 删除用户收货地址功能接口实现
     */
    @Override
    public boolean delShopAddress(Integer shopId) {
        return payMapper.deleteShopAddress(shopId) > 0;
    }

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : boolean
     * @description : 修改用户默认收货地址功能接口实现
     */
    @Override
    public boolean setDefaultTag1(Integer shopId) {
        return payMapper.updateDefaultTag1(shopId) > 0;
    }

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : boolean
     * @description : 修改用户默认收货地址功能接口实现
     */
    @Override
    public boolean setDefaultTag2(Integer shopId) {
        return payMapper.updateDefaultTag2(shopId) > 0;
    }

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : java.util.List<com.first.orange.beans.ShopAddress>
     * @description : 查询用户默认收货地址功能接口实现
     */
    @Override
    public List<ShopAddress> queryDefaultShopAddress(Integer shopId, Integer userId) {
        return payMapper.selectDefaultShopAddress(shopId,userId);
    }

    /**
     * @author : 武
     * @date : 2021/7/7
     * @return : java.util.List<com.first.orange.beans.Cart>
     * @description : 查询已登录用户加入购物车且勾选的商品或者选择直接购买的商品功能接口实现
     */
    @Override
    public List<Cart> queryCart(Integer userId,  Integer checked) {
        return payMapper.selectCart(userId,checked);
    }

    /**
     * @author : 武
     * @date : 2021/7/7
     * @return : boolean
     * @description : 获取页面数据插入到订单表功能接口实现
     */
    @Override
    public boolean insOrders(List<Orders> orders) {
        return payMapper.insertOrders(orders) > 0;
    }

    /**
     * @author : 武
     * @date : 2021/7/8
     * @return : boolean
     * @description : 删除购物车中已勾选的商品或者选择直接购买的商品功能接口实现
     */
    @Override
    public boolean delCart(Integer userId, Integer checked) {
        return payMapper.deleteCart(userId,checked) > 0;
    }

    /**
     * @author : 武
     * @date : 2021/7/9
     * @return : boolean
     * @description : 修改用户购买成功的商品库存功能接口实现
     */
    @Override
    public boolean updProductStock(Integer productId, Integer stock, Integer monthSales, Integer totalSales) {
        return payMapper.updateProductStock(productId, stock, monthSales, totalSales) > 0;
    }
}
